•  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
r15
r1

(새 문서)
1[목차]
2== 개요 ==
3시스템 엔지니어링 1차 과제 중 Linux Script 작성 실습과 관련된 문서이다.
4
5== 제 0과제 ==
6scp 명령어 이용해 과제 수행에 필요한 파일들을 받아오는 과제이다.
7scp 사용법은 아래와 같다.
r9
8[br]
r1

(새 문서)
9># scp 원격ID@원격서버IP:파일위치 받는위치
10>Ex) scp root@172.16.48.201:"/home/test/{test1[20250109].txt,test2.sh,test[3].log,testfile,}" /home/test_user
11위 예시 명령어 확인 시 파일을 한번에 받아오기 위해 중괄호를 추가했고 파일명 중 대괄호가 포함되어 있어 쌍따옴표를 넣어줬다.
12
r12
13----
14사용 명령어 및 함수 : scp
15
r1

(새 문서)
16== 제 1과제 ==
172개의 파일 리스트를 비교해 같은 내용이 있는 라인을 출력하는 과제이다.
r14
18diff 명령어를 사용해 중복된 라인을 출력 후 파일에 넣도록 스크립트를 작성했다.
r9
19[br]
r1

(새 문서)
20> diff "$FILE1" "$FILE2" | grep '^<' | sed 's/^< //' >> "$OUTPUT_FILE"
r9
21명령어 확인 시 스크립트 파일에서 특수기호 "^<" 사용을 위해 따옴표를 넣어줬다.
r1

(새 문서)
22
r10
23----
r11
24사용 명령어 및 함수 : grep, diff, sed
25
r14
26===# 제 1과제 출력 결과 #===
r15
27아래 내용은 두 파일의 같은 컨텐츠 리스트를 출력한 결과입니다.
r14
28{{{H0102023FOD0308030.mpg
29H0602024FOD0823006.mpg
30H0602024FOD0823007.mpg
31H0602024FOD0823008.mpg
32H0602024FOD0823009.mpg
33H0602024FOD0823010.mpg
34H0602024FOD0823011.mpg
35H0602024FOD0823012.mpg
36H0602024FOD0823013.mpg
37H0602024FOD0823014.mpg
38H0602024FOD0823015.mpg
39H0602024FOD0823016.mpg
40H0602024FOD0823017.mpg
41HCBCASD201229.mpg
42HCBFOHD210120.mpg
43HCXNFHD200319.mpg
44HCYLVHD200529.mpg
45M0026360.mpg
46M0026361.mpg
47M0026362.mpg
48M0026363.mpg
49M0026364.mpg
50M0026365.mpg
51M5245079.mpg
52M5245086.mpg
53M5245087.mpg
54M5245089.mpg
55M5245090.mpg
56M5245094.mpg}}}
57
r1

(새 문서)
58== 제 2과제 ==
59대용량 파일을 비교해 공통으로 존재 하는것과 하지 않는 라인을 각각 다른 파일에 저장하는 과제이다.
r3
60diff 명령어를 사용해 각각 다른 파일에 저장하도록 스크립트를 작성했다.
r9
61[br]
r1

(새 문서)
62> diff "$FILE1" "$FILE2" | grep '^>' | sed 's/^> //' | awk '{print $1}' | grep -v 'filename' >> "$EXIST_FILE"
63> diff "$FILE1" "$FILE2" | grep '^<' | sed 's/^< //' | awk -F '[,\t ]+' '{print $1}' >> "$NOT_EXIST_FILE"
64위 명령어 확인 시 제 1과제 명령어와[*1 diff "$FILE1" "$FILE2" | grep '^<' | sed 's/^< //' >> "$OUTPUT_FILE"] 비슷하지만,
65awk를 추가해 필요한 정보만 걸러서 저장하도록 했다.
66중복되는 컨텐츠 리스트와 중복되지 않는 리스트를 각각 저장하도록했다.
r5
67
r11
68----
69사용 명령어 및 함수 : grep, sed, awk
70
r14
71===# 제 2과제 출력 결과 #===
r15
72아래 내용은 대용량 파일 중 비교파일에 존재하는 리스트를 출력한 결과입니다.
r14
73{{{## 공통으로 존재하는 리스트 출력 결과 ##
74M5292473.mpg
75M5268158.mpg
76M5293857.mpg
77M5253970.mpg
78M5270540.mpg
79M5301053.mpg
80M5295048.mpg
81M5218576.mpg
82M5246713.mpg...}}}
83
r15
84아래 내용은 대용량 파일 중 비교파일에 존재하지 않는 리스트를 출력한 결과입니다.
r14
85{{{## 존재하지 않는 리스트 출력 결과 ##
86historyheader:1731900096
87.a.swp
881sec_110324.mpg
891sec_111227.mpg
90H0102022FOD0126015.mpg
91H0102022FOD0801017.mpg
92H0102022FOD0818015.mpg
93H0102022FOD1109013.mpg
94H0102022FOD1206008.mpg
95H0102022FOD1212004.mpg
96H0102022FOD1212007.mpg
97H0102022FOD1228018.mpg
98H0102023FOD0102017.mpg
99H0102023FOD0118010.mpg
100H0102023FOD0203014.mpg
101H0102023FOD0206017.mpg
102H0102023FOD0214006.mpg
103H0102023FOD0216014.mpg
104H0102023FOD0223005.mpg
105H0102023FOD0302030.mpg
106H0102023FOD0308015.mpg
107H0102023FOD0308030.mpg
108H0102023FOD0309006.mpg}}}
109
r1

(새 문서)
110== 제 3과제 ==
111파일에 기록된 시간을 보기 편하게 변환해 별도 파일에 저장하는 과제이다.
r9
112[br]
r3
113> cat "$FILE1" | grep -v history | awk -F ',' '{print $1 "," strftime("%Y-%m-%d %H:%M:%S", $2)}' >> $EXIST_FILE
r5
114strftime 함수를 이용해 파일 내 쉼표 2번째의 있는 텍스트(날짜)를 보기편하게(yyyy-mm-dd hh-mm-ss) 변환한다.
r1

(새 문서)
115
116|| AS-IS || TO-BE ||
r6
117|| 1721693207 || 2024-07-09 09:16:44 ||
r1

(새 문서)
118
r11
119----
120사용 명령어 및 함수 : grep, sed, strftime
121
r14
122===# 제 3과제 출력 결과 #===
r15
123아래 내용은 기존 파일입수 시간을 변환한 결과이다.
r14
124{{{1sec_110324.mpg,2016-12-08 16:44:16
1251sec_111227.mpg,2020-06-05 14:38:59
126H0102022FOD0126015.mpg,2023-09-21 19:39:20
127H0102022FOD0801017.mpg,2023-10-20 13:40:52
128H0102022FOD0818015.mpg,2023-12-27 17:45:50
129H0102022FOD1109013.mpg,2023-09-19 11:21:30
130H0102022FOD1206008.mpg,2023-11-14 17:07:44
131H0102022FOD1212004.mpg,2023-09-25 17:47:41
132H0102022FOD1212007.mpg,2023-10-24 13:06:43
133H0102022FOD1228018.mpg,2023-09-19 16:16:59
134H0102023FOD0102017.mpg,2023-09-20 09:59:54
135H0102023FOD0118010.mpg,2023-08-07 16:36:09
136H0102023FOD0203014.mpg,2023-08-29 16:25:55}}}
137
r1

(새 문서)
138== 제 4과제 ==
r6
139파일내 bitrate 값의 따라 각각 다른 파일의 저장하는 과제이다.
r11
140if문을 통해 6Mbps인 경우 4~6M
141 hd_cnt++; hd_sum += bibps인 경우 그 외 데이터를 각각 저장 할 수 있도록 작성했다.
r6
142
r9
143{{{if (bitrate >= 6000000) {
r11
144 print out >> "HD.txt";trate;
r9
145} }}}bitrate 값 마다 분리 해주는 구문이다.
r1

(새 문서)
146다른 값들도 구문과 같이 각각 분리해 준다.
147
148{{{if (hd_cnt > 0) {
149 res = sprintf("total : %d, bitrate avg : %.0f", hd_cnt, hd_sum / hd_cnt);
150 print res >> "HD.txt";
r9
151} }}}파일 마지막 줄에 나눈 파일 마다의 총 파일의 개수와 평균 bitrate를 계산한 값을 출력하도록했다.
r7
152다른 값들도 구문과 같이 총파일 개수와 평균 bitrate를 출력한다.
153
r11
154----
155사용 명령어 및 함수 : print , sprintf
r4
156
r14
157===# 제 4과제 출력 결과 #===
r15
158아래 내용은 Bitrate가 6Mbps 이상인 컨텐츠 리스트 결과이다.
r14
159{{{## HD.txt ##
1601sec_110324.mpg,2016-12-08 16:44:16
1611sec_111227.mpg,2020-06-05 14:38:59
162H0102022FOD0126015.mpg,2023-09-21 19:39:20
163H0102022FOD0801017.mpg,2023-10-20 13:40:52
164H0102022FOD0818015.mpg,2023-12-27 17:45:50
165H0102022FOD1109013.mpg,2023-09-19 11:21:30
166H0102022FOD1206008.mpg,2023-11-14 17:07:44
167H0102022FOD1212004.mpg,2023-09-25 17:47:41
168H0102022FOD1212007.mpg,2023-10-24 13:06:43
169H0102022FOD1228018.mpg,2023-09-19 16:16:59}}}
r15
170아래 내용은 Bitrate가 4~6Mbps 사이인 컨텐츠 리스트 결과이다.
r14
171{{{## SD.txt ##
172HCAAKHD200921.mpg,1600649855,5905200
173HCAARHD200921.mpg,1600667966,5905200
174HCAAWHD200923.mpg,1600824404,5905200
175HCAAXHD200923.mpg,1600824580,5905200
176HCABMHD200925.mpg,1601012433,5905200
177HCADIHD200928.mpg,1601274244,5905200
178HCAEDHD200929.mpg,1601341620,5905200
179HCAEEHD200929.mpg,1601342072,5905200}}}
r15
180아래 내용은 그 외 Bitrate의 컨텐츠 리스트 결과이다.
r14
181{{{## check.txt ##
182.a.swp,1460369255,0
1831sec_110324.mpg,1481183056,3684427
184HCAAKSD200921.mpg,1600649698,3757500
185HCAARSD200921.mpg,1600667884,3757500
186HCAAWSD200923.mpg,1600824217,3757500
187HCAAXSD200923.mpg,1600824091,3757500
188HCABMSD200925.mpg,1601012525,3757500
189HCADISD200928.mpg,1601274635,3757500
190HCAEDSD200929.mpg,1601341711,3757500
191HCAEESD200929.mpg,1601341883,3757500}}}
192
r4
193== 제 5과제 ==
r1

(새 문서)
194입력한 용량 값 만큼의 컨텐츠 크기인 파일만 출력하는 과제이다.
r9
195[br]
r7
196> grep "^H" hitcount.txt
197H로 시작하는 컨텐츠 파일만 조회 하기 위해 grep에 ^를 추가해 준다.
r9
198[br]
r4
199> current_gb = $4/1024/1024/1024;
r1

(새 문서)
200리스트 파일에 있는 컨텐츠 별 용량을 구해 GB로 변환 해준다.
201
r9
202{{{if (current_gb < limit) {
r11
203 printf "%s, %s, %s, %.2f GB, %s\n", $1, v$2, $3, current_gb, $5
r9
204} }}}if문을 통해 입력한 GB 값과 파일리스트의 GB변환값을 비교해 미만인 파일들을 출력해준다.
r1

(새 문서)
205
r11
206----
r13
207사용 명령어 및 함수 : read, sprintf, grep, awk
r11
208
r14
209===# 제 5과제 출력 결과 #===
r15
210아래 내용은 GB 값을 입력 받아 1GB미만 컨텐츠 리스트를 출력한 결과이다.
r14
211{{{[root@testServer work5]# ./event_show.sh
212Input SIZE(GB) : 1
213H0102022FOD0126015.mpg, 1695292760, 6017250, 0.83 GB, 192.168.41.102 192.168.41.110
214H0102022FOD0801017.mpg, 1697776852, 6017250, 0.83 GB, 192.168.41.181 192.168.41.182
215H0102022FOD0818015.mpg, 1703666750, 6017250, 0.83 GB, 192.168.41.181 192.168.41.182
216H0102022FOD1109013.mpg, 1695090090, 6017250, 0.04 GB, 192.168.41.102 192.168.41.183
217H0102022FOD1206008.mpg, 1699949264, 6017250, 0.83 GB, 192.168.41.118 192.168.41.183
218H0102022FOD1212004.mpg, 1695631661, 6017250, 0.83 GB, 192.168.41.114 192.168.41.183...
219}}}
r15
220아래 내용은 GB 값을 입력 받아 0.5GB미만 컨텐츠 리스트를 출력한 결과이다.
r14
221{{{[root@testServer work5]# ./event_show.sh
222Input SIZE(GB) : 0.5
223H0102022FOD1109013.mpg, 1695090090, 6017250, 0.04 GB, 192.168.41.102 192.168.41.183
224H0102023FOD0321010.mpg, 1690260213, 6017250, 0.42 GB, 192.168.41.181 192.168.41.182
225H0102023FOD0403005.mpg, 1708304121, 6017250, 0.42 GB, 192.168.41.117 192.168.41.118
226H0102023FOD0531006.mpg, 1714728859, 6017250, 0.42 GB, 192.168.41.181 192.168.41.182
227H0102023FOD0614002.mpg, 1714729449, 6017250, 0.42 GB, 192.168.41.181 192.168.41.182
228H0102024FOD0523010.mpg, 1716451462, 6017250, 0.42 GB, 192.168.41.118 192.168.41.182...}}}
229
r8
230== 제 6과제 ==
r1

(새 문서)
231파일이 복사된 서버의 IP 리스트의 개수와 파일이 복사된 개수를 비교해 두 값이 다른걸 출력하는 과제이다.
r9
232[br]
r2
233> split($5, ips, " ");
234> ip_cnt = length(ips);
r4
235> copy_cnt = $6;
236split 함수를 이용해 IP 리스트 개수를 출력,
237복사된 개수는 이미 Count되어 있어 값을 가져 올 수 있다.
r9
238[br]
239{{{if (ip_cnt != copy_cnt) {
r2
240 printf "불일치: %s (실제:%d, 기록:%d)\n", $1, ip_cnt, copy_cnt
r9
241} }}}if문을 통해 불일치 값을 출력해 남겨준다.
r2
242
r11
243----
244사용 명령어 및 함수 : split, if, printf
245
r14
246===# 제 6과제 출력 결과 #===
r15
247아래 내용은 복사된 서버의 IP 개수와 복사된 개수를 비교해 불일치 한 것을 출력한 결과이다.
r14
248{{{불일치: H0602024FOD0611015.mpg (실제:2, 기록:3)
249불일치: M4330604.mpg (실제:2, 기록:3)
250불일치: M4622038.mpg (실제:2, 기록:3)
251불일치: M4726665.mpg (실제:2, 기록:3)
252불일치: M4726666.mpg (실제:2, 기록:3)
253불일치: M5224716.mpg (실제:3, 기록:4)
254불일치: M5263260.mpg (실제:3, 기록:4)
255불일치: M5293015.mpg (실제:3, 기록:4)
256불일치: M5293063.mpg (실제:3, 기록:4)
257불일치: M5293072.mpg (실제:3, 기록:4)
258불일치: M5293078.mpg (실제:3, 기록:4)
259불일치: M5293093.mpg (실제:3, 기록:4)
260불일치: M5293147.mpg (실제:3, 기록:4)}}}
261
r2
262== 제 7과제 ==
263EventLog에서 SeesionID로 조회해 관련로그를 출력 및 관련 컨텐츠 파일을 다른 파일에서도 조회해 출력하는 과제이다.
r9
264[br]
r1

(새 문서)
265> grep "$sid" EventLog\[20241118\].log
266SessionID를 입력받아 관련 로그를 조회한다.
r9
267[br]
r4
268> grep "$sid" EventLog\[20241118\].log | grep ".mpg" | sed -E 's/.*[[,/ ]([^,/[ ]+\.mpg).*/\1/' | sort -u
269mpg 파일을 다른 파일에서도 조회 하기 위해 mpg 목록들을 출력한다.
270
r11
271----
r13
272사용 명령어 및 함수 : read, grep, if, sed, sort, while
r11
273
r14
274===# 제 7과제 출력 결과 #===
r15
275아래 내용은 입력받은 sessionID를 조회해 관련로그 및 mpg 파일 리스트를 출력한 결과이다.
r14
276{{{[root@testServer work7]# ./event_show.sh
277조회할 sessionID : e0072144-8c91-4e15-bfb6-2c2b746008bc
2780x8ffff,1,1731855612,90,Received Request OnDemandSession (SessionID [e0072144-8c91-4e15-bfb6-2c2b746008bc/99206], StreamID [0786e652-e341-4167-af1f-b8f863a6661b], dest IP [172.16.2.143], dest port [263], peerip [192.168.43.19], file [/data2/M4991043.mpg])
2790x2ffff,1,1731855612,90,RTSP::Reserved Session(e0072144-8c91-4e15-bfb6-2c2b746008bc) Stream(0786e652-e341-4167-af1f-b8f863a6661b) : file(M4991043.mpg), request file(M4991043.mpg)
2800x40ffff,1,1731855612,event_type[AdverTisement], session(e0072144-8c91-4e15-bfb6-2c2b746008bc) : Get Advertise. - Type(ADM), Advertise(1sec_111227.mpg[-1*1*Tracking=00000000-0000-0000-0000-000000000000],HCDSUHD241018.mpg[-1*1*Tracking=2c8ae4c09ca240f780ec7ec2a49fa226],HCDTZHD241113.mpg[-1*1*Tracking=0f4c8e29bde6404cb6b816e9a956293e])
2810x40ffff,4,1731855612,event_type[AdverTisement], session(e0072144-8c91-4e15-bfb6-2c2b746008bc) : Disabled ADV schedule parsing for resume.
2820x10001,1,1731855612,90,99206,10.183.5.100,M4991043.mpg,2,1731855612,1731855612,SessionID[e0072144-8c91-4e15-bfb6-2c2b746008bc], StreamID[0786e652-e341-4167-af1f-b8f863a6661b]
2830x4ffff,1,1731855612,90,99206,10.183.5.100,M4991043.mpg,Report Connection Established, SessionID[e0072144-8c91-4e15-bfb6-2c2b746008bc], StreamID[0786e652-e341-4167-af1f-b8f863a6661b]
2840x4ffff,1,1731855612,90,99206,10.183.5.100,M4991043.mpg,SET_PARAMETER request for smart_card_id -> 17605388 SessionID[e0072144-8c91-4e15-bfb6-2c2b746008bc], StreamID[0786e652-e341-4167-af1f-b8f863a6661b]
2850x4ffff,1,1731855612,90,99206,10.183.5.100,M4991043.mpg,SET_PARAMETER request for pincode -> UMP, UMP_1.0.0QR2 SessionID[e0072144-8c91-4e15-bfb6-2c2b746008bc], StreamID[0786e652-e341-4167-af1f-b8f863a6661b]
2860x4ffff,1,1731855612,90,99206,10.183.5.100,M4991043.mpg,SET_PARAMETER request for menuid -> 6807005 SessionID[e0072144-8c91-4e15-bfb6-2c2b746008bc], StreamID[0786e652-e341-4167-af1f-b8f863a6661b]
2870x4ffff,1,1731855612,90,99206,10.183.5.100,M4991043.mpg,Advertise File(/data1/1sec_111227.mpg) Start, SessionID[e0072144-8c91-4e15-bfb6-2c2b746008bc]. StreamID[0786e652-e341-4167-af1f-b8f863a6661b]
2880x10100,1,1731855612,90,99206,10.183.5.100,M4991043.mpg,2,1731855612,1731855612,SessionID[e0072144-8c91-4e15-bfb6-2c2b746008bc], StreamID[0786e652-e341-4167-af1f-b8f863a6661b] seek offset : 1692
2890x10200,1,1731855614,90,99206,10.183.5.100,M4991043.mpg,2,1731855612,1731855614,event_type[AdverTisement], SessionID[e0072144-8c91-4e15-bfb6-2c2b746008bc], StreamID[0786e652-e341-4167-af1f-b8f863a6661b], bandwidth[6073800], clientid[17605388], userid[], bitrate[6073800], systemtype[131072], videotype[1024], audiotype[4], filesize[1898236], filepath[/data1], filename[1sec_111227.mpg], filepath_attr[0], offset[1898236], result_type[1], params[menuid: 6807005], scheduletime[-1], mainfile[M4991043.mpg], adv_info[Tracking=00000000-0000-0000-0000-000000000000], vod_request_meta_info[], startoffset[1692], resetup[0], vod_request_id[cc57bb62-ad8f-4057-bba0-146ba302ea29], vod_ip[192.168.41.151]
2900x4ffff,1,1731855614,90,99206,10.183.5.100,M4991043.mpg,Advertise File(/data1/HCDSUHD241018.mpg) Start SessionID[e0072144-8c91-4e15-bfb6-2c2b746008bc], StreamID[0786e652-e341-4167-af1f-b8f863a6661b]
2910x10200,1,1731855631,90,99206,10.183.5.100,M4991043.mpg,2,1731855614,1731855631,event_type[AdverTisement], SessionID[e0072144-8c91-4e15-bfb6-2c2b746008bc], StreamID[0786e652-e341-4167-af1f-b8f863a6661b], bandwidth[5905200], clientid[17605388], userid[], bitrate[5905200], systemtype[131072], videotype[1024], audiotype[4], filesize[12154952], filepath[/data1], filename[HCDSUHD241018.mpg], filepath_attr[0], offset[12154952], result_type[1], params[menuid: 6807005], scheduletime[-1], mainfile[M4991043.mpg], adv_info[Tracking=2c8ae4c09ca240f780ec7ec2a49fa226], vod_request_meta_info[], startoffset[1692], resetup[0], vod_request_id[cc57bb62-ad8f-4057-bba0-146ba302ea29], vod_ip[192.168.41.151]
2920x4ffff,1,1731855631,90,99206,10.183.5.100,M4991043.mpg,Advertise File(/data1/HCDTZHD241113.mpg) Start SessionID[e0072144-8c91-4e15-bfb6-2c2b746008bc], StreamID[0786e652-e341-4167-af1f-b8f863a6661b]
2930x10200,1,1731855647,90,99206,10.183.5.100,M4991043.mpg,2,1731855631,1731855647,event_type[AdverTisement], SessionID[e0072144-8c91-4e15-bfb6-2c2b746008bc], StreamID[0786e652-e341-4167-af1f-b8f863a6661b], bandwidth[5905200], clientid[17605388], userid[], bitrate[5905200], systemtype[131072], videotype[1024], audiotype[4], filesize[12154952], filepath[/data1], filename[HCDTZHD241113.mpg], filepath_attr[0], offset[12154952], result_type[1], params[menuid: 6807005], scheduletime[-1], mainfile[M4991043.mpg], adv_info[Tracking=0f4c8e29bde6404cb6b816e9a956293e], vod_request_meta_info[], startoffset[1692], resetup[0], vod_request_id[cc57bb62-ad8f-4057-bba0-146ba302ea29], vod_ip[192.168.41.151]
2940x10004,1,1731855674,90,99206,10.183.5.100,M4991043.mpg,2,1731855612,1731855674,SessionID[e0072144-8c91-4e15-bfb6-2c2b746008bc], StreamID[0786e652-e341-4167-af1f-b8f863a6661b], Scale 2
2950x10004,1,1731855676,90,99206,10.183.5.100,M4991043.mpg,2,1731855612,1731855676,SessionID[e0072144-8c91-4e15-bfb6-2c2b746008bc], StreamID[0786e652-e341-4167-af1f-b8f863a6661b], Scale 4
2960x10004,1,1731855677,90,99206,10.183.5.100,M4991043.mpg,2,1731855612,1731855677,SessionID[e0072144-8c91-4e15-bfb6-2c2b746008bc], StreamID[0786e652-e341-4167-af1f-b8f863a6661b], Scale 8
2970x10080,1,1731855718,90,99206,10.183.5.100,M4991043.mpg,2,1731855612,1731855718,SessionID[e0072144-8c91-4e15-bfb6-2c2b746008bc], StreamID[0786e652-e341-4167-af1f-b8f863a6661b]
2980x10002,1,1731855719,90,99206,10.183.5.100,M4991043.mpg,2,1731855612,1731855719,SessionID[e0072144-8c91-4e15-bfb6-2c2b746008bc], StreamID[0786e652-e341-4167-af1f-b8f863a6661b]
2990x10200,1,1731855719,90,99206,10.183.5.100,M4991043.mpg,2,1731855612,1731855719,SessionID[e0072144-8c91-4e15-bfb6-2c2b746008bc], StreamID[0786e652-e341-4167-af1f-b8f863a6661b], bandwidth[6073800], clientid[17605388], userid[], bitrate[6073800], systemtype[131072], videotype[1024], audiotype[4], filesize[3219443036], filepath[/data2], filename[M4991043.mpg], filepath_attr[0], offset[240276220], result_type[1], params[menuid: 6807005], insert_sent[26208140], bytes_sent[79849992], vod_request_meta_info[], startoffset[1692], resetup[0], vod_request_id[cc57bb62-ad8f-4057-bba0-146ba302ea29], vod_ip[192.168.41.151]
300
301===== file select =====
3021sec_111227.mpg
303file(M4991043.mpg
304HCDSUHD241018.mpg
305HCDTZHD241113.mpg
306M4991043.mpg
307
308===== select hitcount =====
3091sec_111227.mpg,1591335539,6073800,1898236,192.168.41.101 192.168.41.102 192.168.41.103 192.168.41.108 192.168.41.109 192.168.41.110 192.168.41.111 192.168.41.112 192.168.41.113 192.168.41.114 192.168.41.116 192.168.41.117 192.168.41.118 192.168.41.181 192.168.41.182 192.168.41.183,16,0,0,0=0 0
310HCDSUHD241018.mpg,1729235522,5905200,12154952,192.168.41.101 192.168.41.102 192.168.41.103 192.168.41.108 192.168.41.109 192.168.41.110 192.168.41.111 192.168.41.112 192.168.41.113 192.168.41.114 192.168.41.116 192.168.41.117 192.168.41.118 192.168.41.181 192.168.41.182 192.168.41.183,16,0,0,0=0 0
311HCDTZHD241113.mpg,1731485917,5905200,12154952,192.168.41.101 192.168.41.102 192.168.41.103 192.168.41.108 192.168.41.109 192.168.41.110 192.168.41.111 192.168.41.112 192.168.41.113 192.168.41.114 192.168.41.116 192.168.41.117 192.168.41.118 192.168.41.181 192.168.41.182 192.168.41.183,16,0,0,0=0 0}}}
312
313
r1

(새 문서)
314== 제 8과제 ==
315EventLog에서 SeesionID로 조회해 관련로그를 출력 및 관련 컨텐츠 파일을 다른 파일에서도 조회해 출력하는 과제이다.
r9
316[br]
r1

(새 문서)
317> grep "$sid" EventLog\[20241118\].log
318SessionID를 입력받아 관련 로그를 조회한다.
r9
319[br]
r1

(새 문서)
320> grep "$sid" EventLog\[20241118\].log | grep ".mpg" | sed -E 's/.*[[,/ ]([^,/[ ]+\.mpg).*/\1/' | sort -u
321mpg 파일을 다른 파일에서도 조회 하기 위해 mpg 목록들을 출력한다.
r9
322[br]
r2
323> start_ts=$(date -d "$LOG_DATE $start_input" +%s)
324> Ex) inout = 10
325> 변환 후 --> 10:30:00
326입력받은 시간을 변환을 하기 위한 구문이다.
r9
327[br]
r2
328> awk -F',' -v s="$start_ts" -v e="$end_ts" '$3 >= s && $3 <= e' "$FILE"
329입력한 시작 시간보다 큰 값과 입력한 종료 시간보다 작거나 같은 값을 출력한다.
330
r11
331----
332사용 명령어 및 함수 : read, awk, sed
r2
333
r14
334===# 제 8과제 출력 결과 #===
r15
335아래 내용은 시간을 입력받아 해당 범위 내 로그를 출력한 결과이다.
r14
336{{{[root@testServer work8]# ./select_hour.sh
337Start Hour : 11:00
338End Hour : 11:01
3390x10004,1,1731895205,90,87860,10.146.69.251,M4805498.mpg,2,1731894915,1731895205,SessionID[5e567417-b10e-4cb3-a80e-30105ad8a8c7], StreamID[fa70b4e0-a3c3-4649-87b7-464d75d27b02], Scale 2
3400x10004,1,1731895206,90,87860,10.146.69.251,M4805498.mpg,2,1731894915,1731895206,SessionID[5e567417-b10e-4cb3-a80e-30105ad8a8c7], StreamID[fa70b4e0-a3c3-4649-87b7-464d75d27b02], Scale 4
3410x10004,1,1731895206,90,87860,10.146.69.251,M4805498.mpg,2,1731894915,1731895206,SessionID[5e567417-b10e-4cb3-a80e-30105ad8a8c7], StreamID[fa70b4e0-a3c3-4649-87b7-464d75d27b02], Scale 8
3420x10004,1,1731895207,90,87860,10.146.69.251,M4805498.mpg,2,1731894915,1731895207,SessionID[5e567417-b10e-4cb3-a80e-30105ad8a8c7], StreamID[fa70b4e0-a3c3-4649-87b7-464d75d27b02], Scale 16
3430x10040,1,1731895217,90,87860,10.146.69.251,M4805498.mpg,2,1731894915,1731895217,SessionID[5e567417-b10e-4cb3-a80e-30105ad8a8c7], StreamID[fa70b4e0-a3c3-4649-87b7-464d75d27b02]
3440x10080,1,1731895221,90,99462,10.158.154.220,M4994600.mpg,2,1731893212,1731895221,SessionID[272b2c9d-2288-4cf4-bb07-2ee31800341c], StreamID[1b803e81-52a9-4a1e-bd9a-0580452904c0]
3450x10002,1,1731895221,90,99462,10.158.154.220,M4994600.mpg,2,1731893212,1731895221,SessionID[272b2c9d-2288-4cf4-bb07-2ee31800341c], StreamID[1b803e81-52a9-4a1e-bd9a-0580452904c0]
3460x10200,1,1731895221,90,99462,10.158.154.220,M4994600.mpg,2,1731893212,1731895221,SessionID[272b2c9d-2288-4cf4-bb07-2ee31800341c], StreamID[1b803e81-52a9-4a1e-bd9a-0580452904c0], bandwidth[6073800], clientid[], userid[], bitrate[6073800], systemtype[131072], videotype[1024], audiotype[4], filesize[3836009716], filepath[/data1], filename[M4994600.mpg], filepath_attr[0], offset[3461847792], result_type[1], params[], insert_sent[25125448], bytes_sent[1524970460], vod_request_meta_info[], startoffset[1692], resetup[0], vod_request_id[98392774-61ad-4435-8cb2-03641516314c], vod_ip[192.168.41.151]
3470x8ffff,1,1731895221,90,SendRequestStreamStateNotification count : 1
3480x10004,1,1731895224,90,87860,10.146.69.251,M4805498.mpg,2,1731894915,1731895224,SessionID[5e567417-b10e-4cb3-a80e-30105ad8a8c7], StreamID[fa70b4e0-a3c3-4649-87b7-464d75d27b02], Scale 2
3490x10004,1,1731895224,90,87860,10.146.69.251,M4805498.mpg,2,1731894915,1731895224,SessionID[5e567417-b10e-4cb3-a80e-30105ad8a8c7], StreamID[fa70b4e0-a3c3-4649-87b7-464d75d27b02], Scale 4
3500x10004,1,1731895225,90,87860,10.146.69.251,M4805498.mpg,2,1731894915,1731895225,SessionID[5e567417-b10e-4cb3-a80e-30105ad8a8c7], StreamID[fa70b4e0-a3c3-4649-87b7-464d75d27b02], Scale 8
3510x10004,1,1731895225,90,87860,10.146.69.251,M4805498.mpg,2,1731894915,1731895225,SessionID[5e567417-b10e-4cb3-a80e-30105ad8a8c7], StreamID[fa70b4e0-a3c3-4649-87b7-464d75d27b02], Scale 16
3520x10040,1,1731895227,90,87860,10.146.69.251,M4805498.mpg,2,1731894915,1731895227,SessionID[5e567417-b10e-4cb3-a80e-30105ad8a8c7], StreamID[fa70b4e0-a3c3-4649-87b7-464d75d27b02]
3530x8ffff,1,1731895236,90,Received Request OnDemandSession (SessionID [093d0146-5993-43a8-bbb7-5a9ca03b9595/88470], StreamID [85629a14-9705-4dd3-9e92-76ae19979d57], dest IP [172.16.132.139], dest port [270], peerip [192.168.43.19], file [/data1/M4337604.mpg])
3540x2ffff,1,1731895236,90,RTSP::Reserved Session(093d0146-5993-43a8-bbb7-5a9ca03b9595) Stream(85629a14-9705-4dd3-9e92-76ae19979d57) : file(M4337604.mpg), request file(M4337604.mpg)
3550x40ffff,1,1731895236,event_type[AdverTisement], session(093d0146-5993-43a8-bbb7-5a9ca03b9595) : Get Advertise. - Type(ADM), Advertise(1sec_111227.mpg[-1*1*Tracking=00000000-0000-0000-0000-000000000000],HCDTWHD241107.mpg[-1*1*Tracking=0752fe98edea4202a62038535409fa75])
3560x40ffff,4,1731895236,event_type[AdverTisement], session(093d0146-5993-43a8-bbb7-5a9ca03b9595) : Disabled ADV schedule parsing for resume.
3570x10001,1,1731895236,90,88470,10.155.150.52,M4337604.mpg,2,1731895236,1731895236,SessionID[093d0146-5993-43a8-bbb7-5a9ca03b9595], StreamID[85629a14-9705-4dd3-9e92-76ae19979d57]
3580x8ffff,1,1731895236,90,SendRequestStreamStateNotification count : 1
3590x4ffff,1,1731895236,90,88470,10.155.150.52,M4337604.mpg,Report Connection Established, SessionID[093d0146-5993-43a8-bbb7-5a9ca03b9595], StreamID[85629a14-9705-4dd3-9e92-76ae19979d57]
3600x4ffff,1,1731895236,90,88470,10.155.150.52,M4337604.mpg,Advertise File(/data1/1sec_111227.mpg) Start, SessionID[093d0146-5993-43a8-bbb7-5a9ca03b9595]. StreamID[85629a14-9705-4dd3-9e92-76ae19979d57]
3610x10100,1,1731895236,90,88470,10.155.150.52,M4337604.mpg,2,1731895236,1731895236,SessionID[093d0146-5993-43a8-bbb7-5a9ca03b9595], StreamID[85629a14-9705-4dd3-9e92-76ae19979d57] seek offset : 4136
3620x8ffff,1,1731895236,90,Received Request OnDemandSession (SessionID [b70923f0-6103-4c56-8d84-4e365348b86f/105693], StreamID [05f78147-affe-44bb-912b-52dcd3b7e92a], dest IP [172.16.98.130], dest port [264], peerip [192.168.43.19], file [/data1/M5260132.mpg])
3630x2ffff,1,1731895236,90,RTSP::Reserved Session(b70923f0-6103-4c56-8d84-4e365348b86f) Stream(05f78147-affe-44bb-912b-52dcd3b7e92a) : file(M5260132.mpg), request file(M5260132.mpg)
3640x40ffff,1,1731895236,event_type[AdverTisement], session(b70923f0-6103-4c56-8d84-4e365348b86f) : Get Advertise. - Type(ADM), Advertise(1sec_111227.mpg[-1*1*Tracking=00000000-0000-0000-0000-000000000000],HCDTXHD241108.mpg[-1*1*Tracking=c746af766af2435d9f169357b75befcb],HCDSUHD241018.mpg[-1*1*Tracking=5d90d1dbd138454e9784a68fe9411456],HCDUAHD241113.mpg[-1*1*Tracking=71c49e0325354c3c99d6bdd85833c5f4],HCDTZHD241113.mpg[-1*1*Tracking=713d45b85e4249c79a32eb28e1da454b])
3650x40ffff,4,1731895236,event_type[AdverTisement], session(b70923f0-6103-4c56-8d84-4e365348b86f) : Disabled ADV schedule parsing for resume.
3660x10001,1,1731895236,90,105693,10.148.69.219,M5260132.mpg,2,1731895236,1731895236,SessionID[b70923f0-6103-4c56-8d84-4e365348b86f], StreamID[05f78147-affe-44bb-912b-52dcd3b7e92a]
3670x4ffff,1,1731895237,90,105693,10.148.69.219,M5260132.mpg,Report Connection Established, SessionID[b70923f0-6103-4c56-8d84-4e365348b86f], StreamID[05f78147-affe-44bb-912b-52dcd3b7e92a]
3680x4ffff,1,1731895237,90,105693,10.148.69.219,M5260132.mpg,SET_PARAMETER request for smart_card_id -> 17709151 SessionID[b70923f0-6103-4c56-8d84-4e365348b86f], StreamID[05f78147-affe-44bb-912b-52dcd3b7e92a]
3690x4ffff,1,1731895237,90,105693,10.148.69.219,M5260132.mpg,SET_PARAMETER request for pincode -> UMP, UMP_1.0.0QR2 SessionID[b70923f0-6103-4c56-8d84-4e365348b86f], StreamID[05f78147-affe-44bb-912b-52dcd3b7e92a]
3700x4ffff,1,1731895237,90,105693,10.148.69.219,M5260132.mpg,SET_PARAMETER request for menuid -> 9955176 SessionID[b70923f0-6103-4c56-8d84-4e365348b86f], StreamID[05f78147-affe-44bb-912b-52dcd3b7e92a]
3710x4ffff,1,1731895237,90,105693,10.148.69.219,M5260132.mpg,Advertise File(/data1/1sec_111227.mpg) Start, SessionID[b70923f0-6103-4c56-8d84-4e365348b86f]. StreamID[05f78147-affe-44bb-912b-52dcd3b7e92a]
3720x10100,1,1731895237,90,105693,10.148.69.219,M5260132.mpg,2,1731895236,1731895237,SessionID[b70923f0-6103-4c56-8d84-4e365348b86f], StreamID[05f78147-affe-44bb-912b-52dcd3b7e92a] seek offset : 1692
3730x10200,1,1731895237,90,88470,10.155.150.52,M4337604.mpg,2,1731895236,1731895237,event_type[AdverTisement], SessionID[093d0146-5993-43a8-bbb7-5a9ca03b9595], StreamID[85629a14-9705-4dd3-9e92-76ae19979d57], bandwidth[6073800], clientid[], userid[], bitrate[6073800], systemtype[131072], videotype[1024], audiotype[4], filesize[1898236], filepath[/data1], filename[1sec_111227.mpg], filepath_attr[0], offset[1898236], result_type[1], params[], scheduletime[-1], mainfile[M4337604.mpg], adv_info[Tracking=00000000-0000-0000-0000-000000000000], vod_request_meta_info[], startoffset[4136], resetup[0], vod_request_id[ddc5b69e-fa0c-4f63-8ba7-67f6daa5424a], vod_ip[192.168.41.151]
3740x4ffff,1,1731895237,90,88470,10.155.150.52,M4337604.mpg,Advertise File(/data1/HCDTWHD241107.mpg) Start SessionID[093d0146-5993-43a8-bbb7-5a9ca03b9595], StreamID[85629a14-9705-4dd3-9e92-76ae19979d57]
3750x10200,1,1731895238,90,105693,10.148.69.219,M5260132.mpg,2,1731895237,1731895238,event_type[AdverTisement], SessionID[b70923f0-6103-4c56-8d84-4e365348b86f], StreamID[05f78147-affe-44bb-912b-52dcd3b7e92a], bandwidth[6073800], clientid[17709151], userid[], bitrate[6073800], systemtype[131072], videotype[1024], audiotype[4], filesize[1898236], filepath[/data1], filename[1sec_111227.mpg], filepath_attr[0], offset[1898236], result_type[1], params[menuid: 9955176], scheduletime[-1], mainfile[M5260132.mpg], adv_info[Tracking=00000000-0000-0000-0000-000000000000], vod_request_meta_info[], startoffset[1692], resetup[0], vod_request_id[2e7f5918-a7ed-4b7b-9e2c-0815239c68ce], vod_ip[192.168.41.151]
3760x4ffff,1,1731895238,90,105693,10.148.69.219,M5260132.mpg,Advertise File(/data1/HCDTXHD241108.mpg) Start SessionID[b70923f0-6103-4c56-8d84-4e365348b86f], StreamID[05f78147-affe-44bb-912b-52dcd3b7e92a]
3770x8ffff,1,1731895241,90,SendRequestStreamStateNotification count : 1
3780x10004,1,1731895259,90,87860,10.146.69.251,M4805498.mpg,2,1731894915,1731895259,SessionID[5e567417-b10e-4cb3-a80e-30105ad8a8c7], StreamID[fa70b4e0-a3c3-4649-87b7-464d75d27b02], Scale 2
3790x10004,1,1731895259,90,87860,10.146.69.251,M4805498.mpg,2,1731894915,1731895259,SessionID[5e567417-b10e-4cb3-a80e-30105ad8a8c7], StreamID[fa70b4e0-a3c3-4649-87b7-464d75d27b02], Scale 4
3800x10004,1,1731895260,90,87860,10.146.69.251,M4805498.mpg,2,1731894915,1731895260,SessionID[5e567417-b10e-4cb3-a80e-30105ad8a8c7], StreamID[fa70b4e0-a3c3-4649-87b7-464d75d27b02], Scale 8
3810x10004,1,1731895260,90,87860,10.146.69.251,M4805498.mpg,2,1731894915,1731895260,SessionID[5e567417-b10e-4cb3-a80e-30105ad8a8c7], StreamID[fa70b4e0-a3c3-4649-87b7-464d75d27b02], Scale 16}}}
382
383